Skip to content

fix: mirrored orientation in GetPhaseTransform - #109

Open
Rubeanie wants to merge 1 commit into
apple:mainfrom
Rubeanie:handedness-fix
Open

Rubeanie wants to merge 1 commit into
apple:mainfrom
Rubeanie:handedness-fix

Conversation

@Rubeanie

@Rubeanie Rubeanie commented Sep 3, 2026

Copy link
Copy Markdown

Description

The Unity-to-PHASE conversion flipped the Z axis on one side only, so the rotation it produced was a mirror image.
Position was unaffected, which is why point sources sounded fine, but directional sources and oriented listeners were reflected front to back under pitch and roll.
Apply the flip on both sides so the rotation is a proper one. The matrix is transposed here because the native side reads it transposed.

Testing

Tested on device - Apple Vision Pro (visionOS 26)

@Rubeanie
Rubeanie marked this pull request as ready for review September 3, 2026 09:18
@Rubeanie Rubeanie changed the title Fix: mirrored orientation in GetPhaseTransform fix: mirrored orientation in GetPhaseTransform Sep 4, 2026
ryzngard added a commit that referenced this pull request Sep 16, 2026
Audit each plug-in against its last release tag and, for everything that
landed since, bump the version and write a CHANGELOG entry. Point every
dependent at Apple.Core 3.3.0.

| Plug-in           | Old -> New      |
|-------------------|-----------------|
| Accessibility     | 1.1.5 -> 1.2.0  |
| BackgroundAssets  | 1.0.0           |
| Core              | 3.3.0           |
| CoreHaptics       | 1.3.2           |
| GameController    | 1.2.4 -> 1.2.5  |
| GameKit           | 4.0.1 -> 4.1.0  |
| PHASE             | 1.2.8           |
| SpatialController | 1.0.6           |
| StoreKit          | 1.0.0           |

Accessibility goes to 1.2.0 rather than the 1.1.5 set by #113, since the
Audio Descriptions API is a new feature.

Gaps this fills beyond the version bumps:

- Apple.StoreKit and Apple.BackgroundAssets shipped in the 27.0 beta
  without a CHANGELOG.md. Both now have one, each a single initial
  release entry. StoreKit stays at 1.0.0: the API added in #112 and the
  Transaction.BeginRefundRequest fix in #111 both landed between the beta
  and now, so they are part of the initial release rather than a delta
  on top of it.
- "Prepare for Xcode 27" raised the native deployment targets to iOS and
  tvOS 15.0 and macOS 12.0 and went undocumented. Now called out in every
  affected plug-in. This matches the floor the README already documented,
  so it is not a change in supported OS versions.
- Every Native/*.xcconfig CURRENT_PROJECT_VERSION had drifted from its
  package.json, some by several releases (CoreHaptics read 1.2.4 against
  a 1.3.1 package). That value feeds MARKETING_VERSION and the generated
  Info.plist, so the binaries would have shipped mislabeled. All are now
  synced.
- SpatialController 1.0.5 listed only stylus support, but also carried a
  native memory leak fix and the PolySpatial/Visual Scripting dependency
  removal. 1.0.5 was never tagged publicly, so the entry is filled out.
- Newly documented: the GKLocalPlayer_RegisterLocalPlayerListener removal
  (IL2CPP link failure against the iOS 27 SDK), Apple.Core's native
  library warning-to-error escalation and dead shell-command removal, and
  the PHASEWrapper update.

External contributions credited in the changelogs:
- CoreHaptics AssetPickerDrawer null fix - @ilterbilguven (#47)
- GameController GCController allocation fix - @HypGamesOrlando (#35)

Co-authored-by: Claude Opus 5 (1M context) <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants